上一篇文章介紹如何將 go 的程式碼拆分到其他 .go 的檔案,今天這一篇要更進一步跟大家介紹如何設定專案的模組化,並且了解如何安裝第三方函式庫。
本文同步放置於此
模組是 go 1.11才開始有的功能,可以幫忙管理專案相依的第三方套件,簡單來說明就如同 dotnet core
的 package.config
或是 nodejs
的 package.json
,接下來要說明如何使用 go 的模組設定。
go 不同於nodejs
、dotnet core
或python
有集中的第三方函式庫,取而代之的是將第三方函式庫託管在公開的程式碼代管倉,如 github ,所以接下來要說明如何設定模組,並學習如何取得第三方函式庫。
在模組這功能問世之前所有的 go 的程式碼要放在GOPATH
底下的src
內,在模組問世之後者要在任意資料夾下輸入以下指令
go mod init projectName
如此會自動生成一個go.mod
模組檔,而且其中會有以下內容
module projectName
go 1.14
其中包括專案名稱以及 對應 go 的版本,接下來介紹如何取得 go 的第三方函式庫。
安裝 go 的第三方函式庫的方法很簡單,只要找到第三方函式庫的位置並輸入以下指令即可
go get github.com/astaxie/beego
go mod vender
如此會自動下載安裝第三方函式庫,並且修改go.mod
加入相依函式庫的資料如下列所示
module projectName
go 1.14
require github.com/astaxie/beego v1.11.1
除此之外還有更簡單的方法就是直接寫在.go檔之中即可,如下列程式碼
package main
import "github.com/astaxie/beego"
func main() {
beego.Run()
}
如此執行以下指令即可
go run xxx.go
只要執行上述指令就會自動下載安裝第三方函式庫,並修改go.mod
$GoPathpkg
內需要的第三方套件搬到vendor
讀者如果搭配上一篇的project-layout配置檔案資料結構可能在直接執行go run xxx.go
時會遇到無法找到相依的第三方套件的狀況,那是因為 go 1.14 版針對資料結構中有個vendor
資料夾時會由該資料夾取得相依的第三方套件,而不是預設的$GoPathpkg
內取得,因此需要先執行安裝第三方套件後再執行go mod vender
將第三方套件由$GoPathpkg
搬到vendor
並修改其modules.txt
檔案。
今天介紹大家如何使用 go 的模組指令,並介紹大家如何安裝第三方函式庫。